package es.webapp.exiquets.domain.entities;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import es.webapp.exiquets.domain.webforms.CategoriaWebForm;


/**
 * The persistent class for the categorias database table.
 * 
 */
@Entity
@Table(name="categorias", catalog="exiquetsdb")
public class Categoria implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int idCategorias;

	private String nombreCategoria;

	//bi-directional many-to-one association to Producto
	@OneToMany(mappedBy="categoriaBean", cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
	private Set<Producto> productos;

	public Categoria() {
	}
	
	public Categoria(CategoriaWebForm c){
		this.idCategorias = c.getIdCategoria();
		this.nombreCategoria = c.getNombreCategoria();
	}
	
	public Categoria(Categoria c){
		this.idCategorias = c.getIdCategorias();
		this.nombreCategoria = c.getNombreCategoria();
	}

	public int getIdCategorias() {
		return this.idCategorias;
	}

	public void setIdCategorias(int idCategorias) {
		this.idCategorias = idCategorias;
	}

	public String getNombreCategoria() {
		return this.nombreCategoria;
	}

	public void setNombreCategoria(String nombreCategoria) {
		this.nombreCategoria = nombreCategoria;
	}

	public Set<Producto> getProductos() {
		return this.productos;
	}

	public void setProductos(Set<Producto> productos) {
		this.productos = productos;
	}

	public Producto addProducto(Producto producto) {
		getProductos().add(producto);
		producto.setCategoriaBean(this);

		return producto;
	}

	public Producto removeProducto(Producto producto) {
		getProductos().remove(producto);
		producto.setCategoriaBean(null);

		return producto;
	}

}